3.1. Template 특수화
컴파일시 코드가 템플릿을 생성하지 않고, 특정 타입의 템플릿에 대해서 커스텀으로 만들어 내는 기능
template<typename T>
struct PropertyTraits
{
// 기본적으로는 아무 내용도 없음 (실수로 정의 안 된 타입 쓰면 에러 나게 유도)
};
template<> // "이건 특수화된 버전이야"라고 컴파일러에게 알림
struct PropertyTraits<float> // "그중에서도 float 전용이지"
{
static constexpr const char* Tag = "float";
static constexpr EPropertyType Type = EPropertyType::EPT_Float;
};